package resources.service;

import java.util.List;
import java.util.Set;

import resources.domain.Role;
import resources.domain.User;

/**
 * Spring service that handles CRUD requests for User entities
 * 
 */
public interface UserService {

	/**
	 * Save an existing User entity
	 * 
	 */
	public User saveUserUser(Integer id, User related_user);

	/**
	 * Save an existing User entity
	 * 
	 */
	public User saveUserUsers(Integer id_1, User related_users);

	/**
	 */
	public User findUserByPrimaryKey(Integer id_2);

	/**
	 * Delete an existing Role entity
	 * 
	 */
	public User deleteUserRole(Integer user_id, Integer related_role_id);

	/**
	 * Save an existing Role entity
	 * 
	 */
	public User saveUserRole(Integer id_3, Role related_role);

	/**
	 * Load an existing User entity
	 * 
	 */
	public Set<User> loadUsers();

	/**
	 * Save an existing User entity
	 * 
	 */
	public void saveUser(User user);

	/**
	 * Delete an existing User entity
	 * 
	 */
	public User deleteUserUser(Integer user_id_1, Integer related_user_id);

	/**
	 * Delete an existing User entity
	 * 
	 */
	public User deleteUserUsers(Integer user_id_2, Integer related_users_id);

	/**
	 * Return a count of all User entity
	 * 
	 */
	public Integer countUsers();

	/**
	 * Delete an existing User entity
	 * 
	 */
	public void deleteUser(User user_1);

	/**
	 * Return all User entity
	 * 
	 */
	public List<User> findAllUsers(Integer startResult, Integer maxRows);
}